package com.mdxq.mall.order.service;

import com.mdxq.mall.order.dto.UpdateDeliveryDTO;
import com.mdxq.mall.order.dto.UpdateNoteDTO;
import com.mdxq.mall.order.dto.UpdateReceiverInfoDTO;
import com.mybatisflex.core.service.IService;
import com.mdxq.mall.order.entity.Order;

import java.util.List;

/**
 * 订单表 服务层。
 *
 * @author zdy
 * @since 2025-01-19
 */
public interface OrderService extends IService<Order> {

    /**
     * 修改订单信息
     * @param order 订单数据
     * @param token 携带管理员信息的令牌
     * @return
     */
    boolean updateReceiverInfo(Order order,String token);

    /**
     * 修改订单信息
     * @param dto 订单数据
     * @param token 携带管理员信息的令牌
     * @return
     */
    boolean updateNote(UpdateNoteDTO dto, String token);

    /**
     *订单发货信息更新
     * @param dtoList 订单数据，快递公司，单号，订单编号
     * @param token 携带管理员信息的令牌
     * @return
     */
    boolean updateDelivery(List<UpdateDeliveryDTO> dtoList, String token);

    /**
     * 批量删除订单
     * @param idList 订单编号
     * @param token 携带管理员信息的令牌
     * @return
     */
    boolean removeByIds(List<String> idList, String token);

    /**
     * 批量关闭订单
     * @param ids 订单编号
     * @param note 订单备注
     * @param token 携带管理员信息的令牌
     * @return
     */
    boolean updateClose(String ids, String note, String token);
}
